package cn.antblog.code;

/**
 * @author YangJingyi
 * @date 2021-09-15 14:31
 */
public class Test3 {
    public static void main(String[] args) {
        Solution solution = new Solution();

    }
}

class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}

 class Solution {
    int i=0;
    TreeNode KthNode(TreeNode pRoot, int k) {
        if(pRoot==null||k<=0){
            return null;
        }

        return getK(pRoot,k);
    }
    TreeNode getK(TreeNode pRoot,int k){
        TreeNode node = null;
        if(pRoot.left != null)
            node = getK(pRoot.left,k);
        //pRoot的某个子节点为null时进入下面代码
        i++;
        if(k == i)
            node = pRoot;  //满足条件就将p`Root赋值给node
        //当node赋值时已经找到时，不需要再遍历了，赋值后就不为null，所以要加上这个判断条件
        //写node == null或者k<index都是可以的。
        if(node == null && pRoot.right!=null)
            node = getK(pRoot.right,k);
        return node;
    }
}
